package com.ruoyi.laiwu.service;

import com.ruoyi.laiwu.domain.LwAlarm;
import com.ruoyi.laiwu.domain.vo.LwAlarmVo;
import com.ruoyi.laiwu.domain.bo.LwAlarmBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 告警Service接口
 *
 * @author ruoyi
 * @date 2024-03-08
 */
public interface ILwAlarmService {

    /**
     * 查询告警
     */
    LwAlarmVo queryById(Long id);

    /**
     * 查询告警列表
     */
    TableDataInfo<LwAlarmVo> queryPageList(LwAlarmBo bo, PageQuery pageQuery);

    /**
     * 查询告警列表
     */
    List<LwAlarmVo> queryList(LwAlarmBo bo);

    /**
     * 新增告警
     */
    Boolean insertByBo(LwAlarmBo bo);

    /**
     * 修改告警
     */
    Boolean updateByBo(LwAlarmBo bo);

    /**
     * 校验并批量删除告警信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    List<Map<String,Object>> listGroupByGrade();

    List<Map<String, Object>> listGroupBySourceType();


    List<LwAlarmVo> listBySourceType(String sourceType);

    List<LwAlarmVo> listByGrade(String grade);

    Long listAllCount();

    List<Map<String, Object>> countBy_7_Day();

    List<LwAlarmVo> queryInfo7_day();
}
